/////////////////////////////// 
// Analizador sintactico 
/////////////////////////////// 

//class Anasint extends Parser;

parser grammar AnasinXML; 


options {
	tokenVocab = AnalexXML;
}

entrada : (elemento)* EOF;
    
// ELEMENTO
elemento : TAG_EMP_ETIQ id=IDENT (atributo)* TAG_CIERRA_ETIQ (datos)+ finxml[id.getText()];
	
//ATRIBUTO
atributo  : IDENT ATRIB_IGUAL ATRIB_VALOR;

//DATOS
datos: DATOS
	  | elemento;
	  
// FINAL XML
finxml [String id]: TAG_EMP_FIN_ETIQ id2=IDENT TAG_CIERRA_ETIQ {
					if (!id.equals(id2.getText ())) {
						System.out.println ("La etiqueta " + id + " de apertura no coincide con la de cierre " + id2.getText ());
						//throw new RecognitionException();
					}
					};
	  
